package com.platform.module.dao.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 用户充值提现表
 * </p>
 *
 * @author ZM
 * @since 2025-01-07
 */
@Getter
@Setter
@TableName("tb_user_pay")
public class TbUserPay implements Serializable {

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 上上级用户
     */
    @TableField("ppuid")
    private Long ppuid;

    /**
     * 上级用户
     */
    @TableField("puid")
    private Long puid;

    /**
     * 渠道
     */
    @TableField("csource")
    private String csource;

    /**
     * 代理商编号
     */
    @TableField("agent_id")
    private String agentId;

    /**
     * 类型 0未知 1充值 2提现
     */
    @TableField("itype")
    private Integer itype;

    /**
     * 是否成功 （0未知 1成功 2失败)
     */
    @TableField("isuccess")
    private Integer isuccess;

    /**
     * 状态（0 已申请 1 已确认 2三方成功 3已加款)
     */
    @TableField("istate")
    private Integer istate;

    /**
     * 第三方状态 0未知
     */
    @TableField("ithirdstate")
    private Integer ithirdstate;

    /**
     * 所属平台
     */
    @TableField("cplatid")
    private String cplatid;

    /**
     * 充值提款方式 0未知 1借记卡 2UPI 3网银 4信用卡 5钱包
     */
    @TableField("ipaytype")
    private Integer ipaytype;

    /**
     * 充值提款方式描述
     */
    @TableField("cpaytypedesc")
    private String cpaytypedesc;

    /**
     * 金额
     */
    @TableField("imoney")
    private BigDecimal imoney;

    /**
     * 商户订单号
     */
    @TableField("apply_order_id")
    private String applyOrderId;

    /**
     * 平台订单号
     */
    @TableField("plat_order_id")
    private String platOrderId;

    /**
     * 渠道方订单号
     */
    @TableField("channel_order_id")
    private String channelOrderId;

    /**
     * 银行卡号
     */
    @TableField("ccardno")
    private String ccardno;

    /**
     * 用户银行卡信息主键
     */
    @TableField("user_bank_card_id")
    private Long userBankCardId;

    /**
     * 错误号
     */
    @TableField("cerrcode")
    private String cerrcode;

    /**
     * 错误描述
     */
    @TableField("cerrdesc")
    private String cerrdesc;

    /**
     * 审核状态 0未审核 1审核通过 2审核失败
     */
    @TableField("iverify")
    private Integer iverify;

    /**
     * 审核人
     */
    @TableField("iverify_userid")
    private String iverifyUserid;

    /**
     * 风险等级 0待判定 1低风险 5高风险
     */
    @TableField("danger_level")
    private Integer dangerLevel;

    /**
     * 描述
     */
    @TableField("cdesc")
    private String cdesc;

    /**
     * 备注
     */
    @TableField("cmemo")
    private String cmemo;

    /**
     * 手续费
     */
    @TableField("irate")
    private BigDecimal irate;

    /**
     * 是否是首次 0非首次 1首次充值或提款
     */
    @TableField("ifirstpay")
    private Integer ifirstpay;

    /**
     * 是否今日首次提现 0首次 1非首次
     */
    @TableField("itoday_firstpay")
    private Integer itodayFirstpay;

    /**
     * 首充时间
     */
    @TableField("cfirstpay_time")
    private LocalDateTime cfirstpayTime;

    /**
     * 创建时间
     */
    @TableField("ccreated_time")
    private LocalDateTime ccreatedTime;

    /**
     * 最终状态时间
     */
    @TableField("claststate_time")
    private LocalDateTime claststateTime;

    /**
     * 备注
     */
    @TableField("ccomments")
    private String ccomments;

    /**
     * 更新时间
     */
    @TableField("cupdate_time")
    private LocalDateTime cupdateTime;

    /**
     * 注册时间
     */
    @TableField("cregister_time")
    private LocalDateTime cregisterTime;

    /**
     * 订单类型 0普通订单 1存钱罐单 2新手充返 3月卡订单 4返利订单
     */
    @TableField("igullak")
    private Integer igullak;

    /**
     * 付款模式 0自动付款 1手动付款
     */
    @TableField("payment_model")
    private Integer paymentModel;

    /**
     * 支出模式 NEFT/RTGS/IMPS/UPI
     */
    @TableField("payment_type")
    private String paymentType;

    /**
     * 是否已通知客户端 0未通知 1待通知 2通知成功 3通知失败
     */
    @TableField("inotify")
    private Integer inotify;

    /**
     * appId
     */
    @TableField("app_id")
    private String appId;

    /**
     * 用户创建订单时ip
     */
    @TableField("create_ip")
    private String createIp;

    /**
     * facebook推送的时所需的fbp
     */
    @TableField("fbp")
    private String fbp;
}
